Opening
and Closing Files
An
application must open an AVI file before reading or writing. To open an AVI
file, use the AVIFileOpen1_3JE9
function. AVIFileOpen returns the address of an AVI file interface that
contains the handle of the open file and increments the reference count of the
file.
The AVIFileOpen
function supports the OF flags used with the OpenFile47XK05 function. If an application
writes to an existing file, it must include the OF_WRITE flag in AVIFileOpen.
Similarly, if your application creates and writes to a new file, you must
include the OF_CREATE and OF_WRITE flags in AVIFileOpen.
When you open
a file using AVIFileOpen, you can use a default file handler or you can
specify a custom file handler to read and write to the file and its data
streams. In either case, AVIFile searches the registry for the correct file
handler to use. You must ensure custom file handlers are in the registry before
an application can access them.
You can
increment the reference count of a file by using the AVIFileAddRef23.C6H5 function. For example, you
might want to do this when passing a handle of the file interface to another
application, or when you want to keep a file open while using a function that
would normally close the file.
You can close
a file by using the AVIFileRelease31SD3RX function. The AVIFileRelease function
decrements the reference count of an AVI file, saves changes made to the file,
and when the reference count reaches zero, closes the file. Your applications
should balance the reference count by including a call to AVIFileRelease
for each use of AVIFileOpen1_3JE9
and AVIFileAddRef.
Note An application
can open a file with one or more program threads. However, for the best
possible performance, only one thread should access the file at any one time.